#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/wait.h>
#include <stdint.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdbool.h>
#include <errno.h>
#include <string.h>
#include <signal.h>
#include <dlfcn.h>
#include <pthread.h>
#include <linux/fb.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <syslog.h>

int daemon_init();

int main(int argc, char const *argv[])
{
    // 进入守护进程状态
    // 1，当前进程的路径就被切换到 "/"
    // 2，当前进程不能再使用标准输入输出
    daemon_init();

    // 打开系统日志 /var/log/syslog
    openlog("daemon_test", LOG_CONS | LOG_PID, LOG_DAEMON);


    mkfifo("/tmp/fifo", 0666);
    int fifo = open("/tmp/fifo", O_RDWR);

    char buf[100];
    while(1)
    {
        bzero(buf, 100);
        int n = read(fifo, buf, 100);
        if(n == -1)
        {
            perror("read fifo failed");
            break;
        }

        syslog(LOG_DAEMON, "%s", buf);
    }

    return 0;
}
